Packet forwarding processing in a network may be performed in a network or lower layer, but the packet forwarding processing in the network or lower layer does not guarantee the packet to reach the intended destination. Then, a connection oriented protocol may be used in a transport layer in order to transmit the packet to the destination reliably. In communication using a connection, congestion control is performed because a usable transmission rate varies depending on network congestion and the like. For example, in transmission control protocol (TCP), processing called “slow start” using a congestion window (cwnd) is performed in order to adjust a transmission quantity of packets. In the slow start, after the start of communication with a destination device, a device on a transmitter side increases a transmission rate by incrementing the value of the congestion window every time an acknowledge packet is received, until detecting a packet loss. In this process, in response to an acknowledge packet as a trigger, the device on the transmitter side sends the device on the receiver side packets in a quantity equal to a total of the number of packets notified by the acknowledge packet as being successfully transmitted, and an increment in the value of the congestion window. In other words, the device on the transmitter side transmits packets upon receiving an acknowledge packet from the device on the receiver side, and subsequently waits until receiving another acknowledge packet. In this procedure, the packet transmission is performed in misaligned manner. If a mass of packets are transmitted at one time, a transmission rate during a period of intensive transmission of the packets is higher than an average transmission rate based on a round trip time (RTT) of a path between a communication device on a transmitter side and a communication device on a receiver side. For this reason, even a device or a link on the path may be able to process packets transmitted at the average transmission rate based on the RTT, it may fail to process packets on time during the period of intensive transmission of the packets, and therefore cause a packet loss. When a packet loss occurs during slow start processing, the communication device on the transmitter side decreases the transmission rate, and thereafter adjusts the transmission rate by changing the transmission rate only by a small rate. For this reason, if a packet loss occurs in communications at a relatively early point of time after the start of slow start processing, the transmission rate may hardly increase.
To address this, it has been proposed to set an upper limit on the increment of the congestion window so as to avoid packet discarding, which may otherwise occur due to a sudden increase in a communication rate in the slow start. In addition, there has been proposed a method of causing a device on a transmitter side to transmit packets at regular intervals so as to avoiding the packets from intensively arriving at a communication device on a receiver side in a short time. As documents of conventional techniques, there are “RFC 3742: Limited slow start” by S. Floyd, and “Understanding the performance of TCP pacing, IEEE INFOCOM, pp. 1157-1165, March 2000” by Aggarwal et al.